package com.todo.member.application.service;

import com.todo.common.common.entity.response.page.PageResult;
import com.todo.member.application.entity.bo.MemberDetailBO;
import com.todo.member.application.entity.bo.MemberInfoBO;
import com.todo.member.application.entity.condition.MemberInfoConditionBO;

/**
 * @author azhebuxing
 * @date 2025/2/12 21:54
 * @description
 */
public interface MemberInfoService {

    /**
     * 插入会员信息
     *
     * @param userId
     * @return
     */
    Boolean insertMemberInfo(Long userId);

    /**
     * 更新会员信息
     *
     * @param memberInfoBO
     * @return
     */
    Boolean updateMemberInfo(MemberInfoBO memberInfoBO);

    /**
     * 根据主键删除会员信息
     *
     * @param id
     * @return
     */
    Boolean removeMemberInfoById(Long id);

    /**
     * 根据主键查询会员信息
     *
     * @param id
     * @return
     */
    MemberInfoBO queryMemberInfoById(Long id);

    /**
     * 分页查询会员信息
     *
     * @param memberInfoConditionBO
     * @return
     */
    PageResult<MemberInfoBO> queryMemberInfoByPage(MemberInfoConditionBO memberInfoConditionBO);

    /**
     * 根据用户id查询会员信息
     *
     * @param userId
     * @return
     */
    MemberInfoBO queryMemberInfoByUserId(Long userId);

    /**
     * 根据用户id查询会员详细信息
     * @param userId
     * @return
     */
    MemberDetailBO queryMemberDetailByUserId(Long userId);
}
